home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Leser 15 / Amiga Plus Leser CD 15.iso / Tools / Development / AmigaTalk_X / general / AmigaTalk.st next >
Encoding:
Text File  |  2002-03-13  |  5.1 KB  |  190 lines

  1. "--------------------------------------------------------------------"
  2. " AmigaTalk Class is now a Singleton class. "
  3. ""
  4. " ALL singleton classes MUST contain the following:                  "
  5. ""
  6. "   the methods:  isSingleton AND privateSetup     AND               "
  7. "                 uniqueInstance Class instance variable.            "
  8. "--------------------------------------------------------------------"
  9.  
  10. Class AmigaTalk :Dictionary
  11. ! uniqueInstance atMsg wTitle globalDict !
  12. [
  13.    isSingleton
  14.      ^ true
  15. |
  16.    privateNew ! newinstance !
  17.      newinstance <- super new.
  18.  
  19.      ^ newinstance
  20. |
  21.    new
  22.      ^ (self privateSetup)
  23. |
  24.    privateSetup
  25.      (uniqueInstance isNil)
  26.        ifTrue: [uniqueInstance <- self privateNew.
  27.                 globalDict     <- Dictionary new.
  28.                ].
  29.  
  30.      ^ self
  31. |
  32.    getByteCodeArrayFrom: aClass for: aMethodString
  33.       ^ <primitive 159 aClass aMethodString>
  34. |
  35.    printString
  36.       ^ <primitive 152 (self class)>   "Over-ride parent method"
  37. |   
  38.    clearScreen
  39.       <primitive 162>  "For Curses & Plot3 only."
  40. |
  41.    globalDictionary
  42.       ^ globalDict
  43. |
  44.    addGlobal: newGlobal key: newKey
  45.       ^ (super at: newKey put: newGlobal)
  46. |
  47.    date
  48.       ^ <primitive 160 >
  49. |
  50.    debug: n
  51.       ^ <primitive 8 2 n>
  52. |
  53.    display
  54.       ^ <primitive 8 1 1>
  55. |
  56.    displayAssign
  57.       ^ <primitive 8 1 2>
  58. |
  59.    doPrimitive: primNumber withArguments: argArray
  60.       ^ <primitive 30 primNumber argArray>
  61. |
  62.    noDisplay
  63.       ^ <primitive 8 1 0>
  64. |
  65.    perform: aMessage withArguments: argArray
  66.       ^ <primitive 143 argArray aMessage >
  67. |
  68.    sh: command
  69.       ^ <primitive 125 command >
  70. |
  71.    time: aBlock      ! start !
  72.       start <- <primitive 161>.   "This is NOT very accurate!"
  73.       aBlock value.
  74.       ^ <primitive 161> - start
  75. |
  76.    getProcessAddress: procName
  77.       ^ <primitive 250 0 0 procName>
  78. |
  79.    getTaskAddress: taskName
  80.       ^ <primitive 250 0 1 taskName>
  81. |
  82.    getScreenAddress: screenName
  83.       ^ <primitive 250 0 2 screenName>
  84. |
  85.    getWindowAddress: windowName
  86.       ^ <primitive 250 0 3 windowName>
  87. |
  88.    getStringAddress: aString
  89.       ^ <primitive 250 3 1 aString>    "NOT Kosher smalltalk!"
  90. |
  91.    getIntegerAddress: anInteger
  92.       ^ <primitive 250 3 0 anInteger>  "NOT Kosher smalltalk!"
  93. |
  94.    getByteArrayAddress: aByteArray
  95.       ^ <primitive 250 3 2 aByteArray> "NOT Kosher smalltalk!"
  96. |
  97.    getTaskAddressList ! array !
  98.       ^ array <- <primitive 250 2 1>
  99. |
  100.    getProcessAddressList ! array!
  101.       ^ array <- <primitive 250 2 0>
  102. |
  103.    getScreenAddressList ! array !
  104.       ^ array <- <primitive 250 2 2> "return an Array of Screen addresses."
  105. |
  106.    getWindowAddressList ! array !
  107.       ^ array <- <primitive 250 2 3> "return an Array of Window addresses."
  108. |
  109.    showTaskProcessList
  110.       ^ <primitive 250 1 4>
  111. |
  112.    showScreenWindowList
  113.       ^ <primitive 250 1 5>
  114. |
  115.    displayProcessInfo: procAddress
  116.       ^ <primitive 250 1 0 procAddress>
  117. |
  118.    displayTaskInfo: taskAddress
  119.       ^ <primitive 250 1 1 taskAddress>
  120. |
  121.    displayScreenInfo: screenAddress
  122.       ^ <primitive 250 1 2 screenAddress>
  123. |
  124.    displayWindowInfo: windowAddress
  125.       ^ <primitive 250 1 3 windowAddress>
  126. |
  127.    setIOMessage: newMessage
  128.       atMsg <- newMessage.
  129. |
  130.    setIOTitle: newTitle
  131.       wTitle <- newTitle.
  132. |
  133.    newIO: msgString title: title
  134.       self setIOMessage: msgString.
  135.       self setIOTitle: title.
  136. |
  137.    setIODirectory: newDirectory
  138.       atMsg <- newDirectory.
  139. |
  140.    setIOScreenName: newScreenName
  141.       atMsg <- newScreenName.
  142. |
  143.    getString
  144.       ^ <primitive 186 0 atMsg wTitle>  "Return a String from the User."
  145. |
  146.    getInteger
  147.       ^ <primitive 186 1 atMsg wTitle>  "Return an Integer from the User."
  148. |
  149.    getFileName
  150.       ^ <primitive 186 5 atMsg wTitle>  "Get a filename from ASL."
  151. |
  152.    getScreenModeID        "atMsg is the Screen title for this method"
  153.       ^ <primitive 186 6 atMsg wTitle>  "Get a ScreenModeID from ASL."
  154. |
  155.    displayFile: fileName
  156.       <primitive 186 2 fileName>
  157. |      
  158.    displayString: string
  159.       <primitive 186 3 string atMsg wTitle>
  160. |
  161.    displayInteger: integer
  162.       <primitive 186 4 integer atMsg wTitle>
  163. |
  164.    listClassDictionaryTo: fileName indent: numSpaces
  165.       ^ <primitive 137 0 0 fileName numSpaces>  
  166. |
  167.    listClassesOf: classObj to: fileName indent: numSpaces
  168.       ^ <primitive 137 0 1 classObj fileName numSpaces>  
  169. |
  170.    fileInPrimitiveFile: fileName
  171.       " Primitive files end with .p (NOT enforced) 
  172.       * & represent parsed Class source code 
  173.       "
  174.       <primitive 138 0 0 fileName>
  175. |
  176.    systemPrivate
  177.       <primitive 137 0 2 'AmigaTalk:Browser/GeneralClasses' 'AmigaTalk:General' 0>.
  178.       <primitive 137 0 3 'AmigaTalk:Browser/GeneralClassInstanceVars' 'AmigaTalk:General'>.
  179.  
  180.       <primitive 137 0 2 'AmigaTalk:Browser/IntuitionClasses' 'AmigaTalk:Intuition' 0>.
  181.       <primitive 137 0 3 'AmigaTalk:Browser/IntuitionClassInstanceVars' 'AmigaTalk:Intuition'>.
  182.  
  183.       <primitive 137 0 2 'AmigaTalk:Browser/SystemClasses' 'AmigaTalk:System' 0>.
  184.       <primitive 137 0 3 'AmigaTalk:Browser/SystemClassInstanceVars' 'AmigaTalk:System'>
  185. |
  186.    updateUserBrowserFiles
  187.       <primitive 137 0 2 'AmigaTalk:Browser/UserClasses' 'AmigaTalk:User' 0>.
  188.       <primitive 137 0 3 'AmigaTalk:Browser/UserClassInstanceVars' 'AmigaTalk:User'>
  189. ]
  190.